home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / gus / mrgus01a.zip / MRGUS.TXT < prev   
Text File  |  1993-09-09  |  15KB  |  285 lines

  1.  
  2.                            Multitrack Recording GUS           By Dave Mercier
  3.                            ~~~~~~~~~~~~~~~~~~~~~~~~
  4.                          Version 0.1 Alpha (many bugs)       
  5.                                   
  6.                                   Overview
  7.                                   ~~~~~~~~
  8.         Multitrack Recording GUS is a program that will let you record and 
  9.         play back multiple digital tracks on your Gravis Ultrasound.
  10.         You can play back up to 14 tracks in this version, but how many you
  11.         can play back before data is skipped, will depend on what frequency
  12.         you are recording/playing at, and how fast your computer is.
  13.         Actually, 14 tracks isn't a physical limit, it's just a practical
  14.         limit I have imposed on this version. 32 tracks could be done at a
  15.         lower frequency, but I didn't have room for them in normal text mode.
  16.  
  17.         Here are some of the features of this program:
  18.  
  19.                 - Ability to record a track while listening to others
  20.  
  21.                 - Ability to set balance and volume for each track
  22.  
  23.                 - Ability to Mute a track from playing
  24.  
  25.                 - Ability to delete tracks
  26.  
  27.                 - A description can be attached to each track
  28.  
  29.                 - Ability to record from Line-in, Mic-in, or both
  30.  
  31.                 - Ability to record/playback at any supported frequency
  32.  
  33.  
  34.         What this program is useful for, is the home musician who just wants
  35.         to record some songs. You can only record one channel at a time. So
  36.         you have to record your drums, then your bass, then your guitar, etc,
  37.         all seperately. This is how most home studio musicians work with 
  38.         their 4-tracks anyways. What this program offers, is a way to record
  39.         more than 4 tracks.
  40.  
  41.         As for sound quality, it will greatly depend on your setup, and how
  42.         you record. The same principles go for digital recording go here, as
  43.         they do for others. Make sure you have the best level when you are
  44.         recording, not too low, not too high. Just expirement. Keep in mind
  45.         that this is 8 bit recording, so don't expect CD quality.
  46.  
  47.         Keep in mind that this release is just an alpha type release. The
  48.         sound quality may suffer drastically due to 'pops and clicks' and
  49.         the odd spurt of white noise. The only reason I am releasing the
  50.         program like this, is because I have to go back to school today, and
  51.         I will be hard pressed to find a minute to work on this for the next
  52.         three months. But I will try as hard as I can to get a decent working 
  53.         version out. There is no software like this available for the GUS, so
  54.         I thought I would let you all play with it until something better 
  55.         comes out.
  56.  
  57.         If I get the time, and I can get the new 16 bit card, or the 
  58.         Ultrasound MAX in my hands, then I will do a 16 bit recording
  59.         version. I will call this the 'PRO' version or something.
  60.  
  61.  
  62.                    How to configure your equipment for Recording
  63.                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  64.                    PLEASE READ THIS! THIS IS IMPORTANT!
  65.  
  66.         To achieve simultaneous recording and playback, we have to avoid the
  67.         output -> input loopback problem. We avoid this by playing back all
  68.         tracks on the right channel, while recording on the left channel.
  69.         
  70.         Connect your source for recording into the LEFT input channel of 
  71.         either the MIC-IN, or LINE-IN. Then monitor what you are playing back
  72.         with the right channel of the output. The balance settings only take
  73.         effect when you are 'playing' back the tracks. When recording, all
  74.         tracks will be heard on the right channel.
  75.  
  76.         Since this application is doing both recording and playback at the 
  77.         same time, set your DMA channels up for this. This means the recording 
  78.         DMA, and the playback DMA must be on different channels. I would 
  79.         also strongly advise using 16 bit DMA channels if possible. This
  80.         program is constantly pushing data through the DMA channels so it
  81.         needs as much bandwidth as possible.
  82.  
  83.         If you get a EMM386.EXE error, just follow the instructions and add
  84.         the D=128 to EMM386.EXE. I have not tried this with any other memory
  85.         managers or machines, so I can't speculate.
  86.  
  87.         This program writes all recorded information to the Hard Drive.
  88.         If you have digitally recorded before, you will know that Hard Drive
  89.         space can be used very rapidly with a program like this. Consider 
  90.         recording 8 tracks of 5 minutes each at 22050hz. This would require
  91.         5 * 60 * 22050 * 8 = 53 Megabytes of Hard drive space! The amount
  92.         of free Hard Drive space you will need will depend on what kind of
  93.         recording you are doing. If you only used 3 tracks, of 1 minute each,
  94.         at 8000hz, you would only require 1.5 Megabytes of Hard drive space.
  95.  
  96.         I would also suggest you only run this program under DOS. This 
  97.         program is timing sensitive. If a multitasking OS takes away too 
  98.         many CPU cycles, the playback or recording will become seriously
  99.         messed up. I have run this program under OS/2, since I use this
  100.         for development. I have noticed that some times this program will
  101.         work great, then the next day, it will act completely whacko. So
  102.         keep it to DOS unless you want surprises.
  103.  
  104.  
  105.                             Explanation of Keys
  106.                             ~~~~~~~~~~~~~~~~~~~
  107.  
  108.         Sorry for the awkward layout of the keys, I'll fix this when I get
  109.         time.
  110.  
  111.         Here is what the keys do.
  112.  
  113.         T:      This will toggle the mute and play status of a track. If the
  114.                 track said 'PLAY', it will be toggled to 'MUTE' and vice 
  115.                 versa. MUTE the track when you do not want to hear it in the
  116.                 combined output of all tracks. Otherwise, keep it on PLAY.
  117.                 It should also be noted that when recording, it is best to 
  118.                 have a minimal amount of tracks playing back. One track 
  119.                 would be the preference. The more tracks played, the higher
  120.                 the chance of losing samples when recording.
  121.  
  122.         B:      This will adjust the balance of a track. A balance of '0' 
  123.                 means all the way left, while a balance of '15' is all the
  124.                 way right. A balance of '7' is the middle.
  125.  
  126.         V:      This will adjust the volume of a track. A volume of 0 is
  127.                 silence, while a volume of 4095 is full volume. Keep in mind
  128.                 that you probably can't hear anything below 2000, since this
  129.                 volume setting is logarithmic.
  130.  
  131.         E:      This will let you attach a description to a track. You may
  132.                 want to do this so that you remember which track is 'Drums'
  133.                 and which track is 'guitar', etc.
  134.  
  135.         F:      This will let you adjust the frequency to record and play back
  136.                 at. Higher frequencies need more Hard Drive space, but will
  137.                 give you higher quality. Lower frequencies give less quality,
  138.                 but save Hard Drive space. Allthough you can set it anywhere
  139.                 from 4000 - 44100, keep in mind the Ultrasound only has 256
  140.                 discrete recording rates. Selecting an unsupported rate may
  141.                 cause timing problems when recording and playing back. Keep
  142.                 safe and stick to a known frequency such as 44100, 22050, or
  143.                 11025.
  144.  
  145.         D:      This will delete a track, and any information associated with
  146.                 it.
  147.  
  148.         N:      This toggles the status of the LINE-IN. It must be toggled to
  149.                 ACTIVE if you wan't to record from the LINE-IN. If you don't
  150.                 make either the LINE-IN or the MIC-IN active, you will just
  151.                 be recording silence.
  152.  
  153.         M:      This toggles the status of the MIC-IN. It must be toggled to
  154.                 ACTIVE if you wan't to record from the MIC-IN. It is possible
  155.                 to have both MIC and LINE-IN active if you want to use both
  156.                 at the same time.
  157.  
  158.         R:      This will start recording of a track. You will hear any tracks
  159.                 that say 'PLAY' while you are recording the new track. Press
  160.                 any key to stop the recording process.
  161.  
  162.         P:      This will play back all track that say 'PLAY' with the correct
  163.                 balance settings.
  164.  
  165.         L:      This will save the work file you are currently working on, and
  166.                 load up another work file that already exists.
  167.  
  168.         C:      This will save the work file you are currently working on, and
  169.                 create a new work file to work on.
  170.  
  171.         S:      This will save your work file in case of a crash or something.
  172.  
  173.         Q:      This will save your work file, and exit to DOS.
  174.  
  175.         K:      This will delete your work file, and then give you the option
  176.                 of exiting the program, or creating another work file. Quiting
  177.                 the program is the only way to permanently get rid of a work
  178.                 file. Sorry if this is kludgy, I haven't had time to think it
  179.                 out better =).
  180.  
  181.         Z:      This is a hidden key that will simply redraw the screen, in
  182.                 case some unseen mishap happens to screw it up =).
  183.  
  184.  
  185.                                 Other Things
  186.                                 ~~~~~~~~~~~~
  187.  
  188.         This program will use as much of your Ultrasound's RAM as possible.
  189.         You will get better results with more RAM on your card. With 256k,
  190.         all memory will be used when playing back 2 tracks. After that,
  191.         the size of the buffers are diminished. Smaller buffers will likely
  192.         introduce more clicks and pops. With 1MB, you can play back 8 tracks
  193.         before the buffers diminish in size. 
  194.  
  195.         Here's a few hints on using this program. You will get best results
  196.         with a fast, defragmented hard drive. You will also get better 
  197.         results if you have a lot of space left on your drive. I've never
  198.         tried this program with disk compression, but I would avoid using
  199.         something like stacker or doublespace. Since this application 
  200.         relies on the speed of moving data to and from the hard drive, the
  201.         compression overhead may cause loss of data or 'skips' in the sound.
  202.  
  203.         This version doesn't play the last bit of information in a track. 
  204.         (Sorry, didn't have time to fix this up). So when you record, always
  205.         wait a few seconds before you start the sound, and wait a few
  206.         seconds after you finish playing whatever you are recording. If you
  207.         don't the last bit of sound may be cut off when you play it.
  208.  
  209.  
  210.                                 What's Next?
  211.                                 ~~~~~~~~~~~~
  212.  
  213.         The only Agenda I have for this program right now, is to rewrite
  214.         the playback and recording functions. The routines I am using now
  215.         are basically just routines I 'hacked' out to see if this program
  216.         would really work. They need a complete overhaul. I am using polled
  217.         I/O to check when to record the next buffer, etc. This should really
  218.         be done with interupts. Problem is I've never programmed with 
  219.         interupts before, so I'm still trying to figure out where to start.
  220.  
  221.         The playback from this program should be perfect, the problem is
  222.         with the recording. Any crap you hear in the output was introduced
  223.         by my bad recording routines. What happens, is you lose samples every
  224.         time a new recording buffer is started. On the other hand, when 
  225.         playing back, no samples are lost. This creates a 'race' condition.
  226.         The playback routines will eventually 'pass' the recording routines,
  227.         and then screw up because the new data is being DMA'd at the wrong 
  228.         time.
  229.  
  230.         After I get the audio routines perfected (I've spent about 80% of my 
  231.         time on the interface =(), I will probably add a GUI. This will 
  232.         probably take a long time because I will be in school trying to 
  233.         figure out how to implement a GUI, for the next 9 months.
  234.  
  235.  
  236.                    Bug Reports, Suggestions, and Comments
  237.                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  238.  
  239.         I would appreciate any of these. Actually it would be nice if 
  240.         somebody could think of a name for this software, because the name
  241.         I have now for it really stinks. I just couldn't think of a good name.
  242.  
  243.         Here's how you can contact me:
  244.  
  245.         Internet Address:
  246.         D3140058@bcit.bc.ca
  247.         *Note, this account had no internet access at the moment, since I
  248.         just got this account yesterday. Maybe by the time you send mail 
  249.         to me, it will be working properly. (sorry if it isn't).
  250.  
  251.         A1140338@bcit.bc.ca
  252.         *This is my old account, which does work properly. Note that this
  253.         will probably expire soon (maybe in a week).
  254.  
  255.         If both these accounts are messed up (I wouldn't doubt it), you can
  256.         contact me through an Authorized Gravis node and ask me a question
  257.         in the Gravis.Chat area. I also peruse adlib.fido sometimes, but
  258.         I won't be reading it much now that I am in school.
  259.  
  260.         Leave a message to Dave Mercier if you do it the last way.
  261.  
  262.         If all else fails, you could write me at:
  263.         Dave Mercier
  264.         105-3955 Smith Ave.
  265.         Burnaby B.C.
  266.         V5G 2T8
  267.         Canada
  268.  
  269.         I'd appreciate any feedback.
  270.  
  271.         By the way, this version of MRGUS is Public Domain. Future versions
  272.         may be Shareware of Commercial, if it ever gets good enough. I
  273.         wouldn't make this version shareware because of all the pops and
  274.         clicks in the sound, and other assorted garbage. I do hold the rights
  275.         to the source code however.
  276.  
  277.  
  278.                                   Credits
  279.                                   ~~~~~~~
  280.         Thanks to Tom Klok for an excellent idea on how to bypass the GUS's
  281.         output/input loopback problem. This program had been attempted a few 
  282.         months earlier, but was scrapped after I thought it was unfeasible 
  283.         because of the loopback problem. Also thanks to Advanced Gravis for 
  284.         the support of their product through the BBS and free SDK's.
  285.